#include "Server.h"

// 接收线程
void *pthread_recv(void *arg)
{
  // 接收参数
  int sock = *((int *)arg);
  // 声明缓冲区
  char buf[128];
  memset(buf, 0, sizeof(buf));
  // 接收字符数量
  int byte_recv = 0;

  // 返回值变量
  static int return_val = 0;

  while (1)
  {
    byte_recv = recv(sock, buf, sizeof(buf), 0);
    // 错误判断
    if (-1 == byte_recv)
    {
      ERRLOG("接收错误");
      return NULL;
    }
    // 结束状态
    else if (0 == byte_recv)
    {
      printf("读取结束\n");
      // 返回1  代表TCP 连接结束
      return_val = 1;
      return (void *)&return_val;
    }

    // 打印接收的字符
    printf("\n输入:%s\n", buf);

    // 清空buf
    memset(buf, 0, sizeof(buf));
  }
}

// 发送线程
void *pthread_send(void *arg)
{
  // 接收参数
  int sock = *((int *)arg);
  // 声明缓冲区
  char buf[128];
  memset(buf, 0, sizeof(buf));

  while (1)
  {
    // 从键盘获取字符串
    printf("发送:");
    scanf("%s", buf);
    if (0 == strlen(buf))
    {
      printf("未输入数据 , 请重新输入\n");
      continue;
    }

    // 发送
    if (-1 == send(sock, buf, strlen(buf), 0))
    {
      ERRLOG("写入错误");
      return NULL;
    }

    // 清空缓冲区
    memset(buf, 0, sizeof(buf));
  }
}
